package com.ruoyi.quality.service;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.inspectionItem.InspectionItem;

import java.util.List;

/**
 * 检测检验项目Service接口
 * 
 * @author ruoyi
 * @date 2023-10-17
 */
public interface IInspectionItemService 
{
    /**
     * 查询检测检验项目
     * 
     * @param id 检测检验项目主键
     * @return 检测检验项目
     */
    public InspectionItem selectInspectionItemById(String id);

    /**
     * 查询检测检验项目
     *
     * @return 检测检验项目
     */
    public List<InspectionItem> selectInspectionItemByReport(String reportNum, String equType);

    /**
     * 查询检测检验项目
     *
     * @param pid 检测检验项目父id
     * @return 检测检验项目
     */
    public List<InspectionItem>  selectInspectionItemByPid(String pid);

    /**
     * 查询检测检验项目列表
     * 
     * @param inspectionItem 检测检验项目
     * @return 检测检验项目集合
     */
    public List<InspectionItem> selectInspectionItemList(InspectionItem inspectionItem);

    /**
     * 构建前端所需要树结构
     *
     * @param inspectionItem 检测检验项目
     * @return 树结构列表
     */
    public List<InspectionItem> buildInspectionItemTree(List<InspectionItem> inspectionItem);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param inspectionItem 检测检验项目
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildInspectionItemTreeSelect(List<InspectionItem> inspectionItem);

    /**
     * 新增检测检验项目
     * 
     * @param inspectionItem 检测检验项目
     * @return 结果
     */
    public int insertInspectionItem(InspectionItem inspectionItem);

    /**
     * 修改检测检验项目
     * 
     * @param inspectionItem 检测检验项目
     * @return 结果
     */
    public int updateInspectionItem(InspectionItem inspectionItem);

    /**
     * 批量删除检测检验项目
     * 
     * @param ids 需要删除的检测检验项目主键集合
     * @return 结果
     */
    public int deleteInspectionItemByIds(String[] ids);

    /**
     * 删除检测检验项目信息
     * 
     * @param id 检测检验项目主键
     * @return 结果
     */
    public int deleteInspectionItemById(String id);

    /**
     * 根据pid删除检测项目
     */
    public int deleteInspectionItemByPid(String pid);

    /**
     * 根据设备类别查询检测项目
     */
    List<String> selectInspectionItemByEquType(String equType);
}
